package co.edu.udea.iw.dao;

import java.util.List;

import co.edu.udea.iw.dto.Solicitud;
import co.edu.udea.iw.exception.IWDaoException;

/**
 * Interface que define los metodos que va a proveer el dao de Solicitud
 * 
 * @author Santiago Ruiz
 * @author Bladimir Velez
 *
 */
public interface SolicitudDAO {
	/**
	 * Entrega los datos de una solicitud dado su identificador
	 * 
	 * @param idSolicitud
	 *            int que es el identificador de la solicitud
	 * @return instancia con los datos del tipo de dispositivo obtenido, si no
	 *         existe el tipo de dispositivo retorna null.
	 * @throws IWDaoException
	 */
	public Solicitud obtenerSolicitud(int idSolicitud) throws IWDaoException;

	/**
	 * Entrega la lista de todas las solicitudes existentes en base de datos
	 * 
	 * @return lista solicitudes
	 * @throws IWDaoException
	 */
	public List<Solicitud> obtenerSolicitudes() throws IWDaoException;

	/**
	 * Agrega una solicitud
	 * 
	 * @param solicitud
	 *            Solicitud a agregar
	 * @return void
	 * @throws IWDaoException
	 */
	public void agregarSolicitud(Solicitud solicitud) throws IWDaoException;

	/**
	 * Elimina un tipo de solicitud
	 * 
	 * @param solicitud
	 *            Solicitud a eliminar
	 * @return void
	 * @throws IWDaoException
	 */
	public void eliminarSolicitud(Solicitud solicitud) throws IWDaoException;

	/**
	 * Actualiza un tipo de solicitud
	 * 
	 * @param solicitud
	 *            Solicitud a actualizar
	 * @return void
	 * @throws IWDaoException
	 */
	public void actualizarSolicitud(Solicitud solicitud) throws IWDaoException;

}
